/***
题目链接：字符串压缩
字符串压缩。利用字符重复出现的次数，编写一种方法，实现基本的字符串压缩功能。
比如，字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短，则返回原先的字符串。
你可以假设字符串中只包含大小写英文字母（a至z）。
https://leetcode-cn.com/problems/compress-string-lcci/
***/
class Solution {
public:
    string compressString(string S) {
        string S1;
        int len = S.size();
        int flag = 0;
        if ( len == 0 ||len == 1 || len ==2) return S;
        for (int i = 0; i < len - 1; i++){
            flag++;
            if (S[i] != S[i+1]){
                S1.push_back(S[i]);
                S1 += to_string(flag);
                flag = 0;
            }
        }
        S1.push_back(S[len - 1]);
        flag +=1;
        S1 += to_string(flag);
        return len >= S1.size() ? S1 : S;
    }
};
// 执行用时：8 ms, 在所有 C++ 提交中击败了 71.11%的用户
// 内存消耗：7.2 MB, 在所有 C++ 提交中击败了 62.10%的用户